package response

import (
	"encoding/json"
	"helper-api/utils"
	"time"
)

// FileListResponse 文件列表
type FileListResponse struct {
	Name       string    `json:"name"`       // 文件名
	Path       string    `json:"path"`       // 文件路径
	LinkPath   string    `json:"linkPath"`   // 连接文件地址
	User       string    `json:"user"`       // 用户
	Group      string    `json:"group"`      // 用户组
	Perm       string    `json:"perm"`       // 权限
	Size       int64     `json:"size"`       // 大小
	UpdateTime time.Time `json:"updateTime"` // 更新时间
	IsDir      bool      `json:"isDir"`      // 是否目录
	IsHidden   bool      `json:"isHidden"`   // 是否隐藏文件
	IsLink     bool      `json:"isLink"`     // 是否链接文件
	MimeType   string    `json:"mimeType"`   // 类型
}

func (f FileListResponse) MarshalJSON() ([]byte, error) {
	type temp FileListResponse
	return json.Marshal(&struct {
		temp
		UpdateTime utils.DateTime `json:"updateTime"`
	}{
		temp:       (temp)(f),
		UpdateTime: utils.DateTime(f.UpdateTime),
	})
}
